package com.sky.context;
/*初始工程中已经封装了 ThreadLocal 操作的工具类：
在sky-common模块*/
//BaseContext是操作ThreadLocal的工具类
//在这个工具类中可以往线程局部变量中设置值,获取值,删除值

/*线程安全设计
使用ThreadLocal存储用户ID
避免多线程环境下用户ID串用*/
public class BaseContext {

    //ThreadLocal为每个线程提供单独一份存储空间
    //静态只能访问静态
    public static ThreadLocal<Long> threadLocal = new ThreadLocal<>();

    public static void setCurrentId(Long id) {
        threadLocal.set(id);
    }//设置

    public static Long getCurrentId() {//获取
        return threadLocal.get();
    }

    public static void removeCurrentId() {
        threadLocal.remove();
    }//删除

}
